/**
 **************************************************************************************************************************
 * 
 **************************************************************************************************************************
 * @file RBAllocations.h
 **************************************************************************************************************************/


#ifndef __RBALLOCATIONS_H__
#define __RBALLOCATIONS_H__


/**************************************************************************************************************************
 * Includes
 **************************************************************************************************************************/

#if RB_USE_MEMORY_MANAGER
#pragma error("wtf")
    #include "RBMemoryManager.h"
    #include "RBMemoryManagerOff.h"
    #include <new>

    inline void* operator new(size_t stSize)
    {
        return RBMemoryManager::Allocate(stSize, RBMemoryManager::MAT_NEW);
    }

    inline void* operator new[](size_t stSize)
    {
        return RBMemoryManager::Allocate(stSize, RBMemoryManager::MAT_NEWARRAY);
    }

    inline void operator delete(void* pAddress)
    {
        return RBMemoryManager::Deallocate(pAddress, RBMemoryManager::MAT_NEW);
    }

    inline void operator delete[](void* pAddress)
    {
        return RBMemoryManager::Deallocate(pAddress, RBMemoryManager::MAT_NEWARRAY);
    }

    #include "RBMemoryManagerOn.h"

#endif

/**************************************************************************************************************************/

#endif // __RBALLOCATIONS_H__
